#pragma once

class EmptyWindow : public GUIObject
{
public:
    EmptyWindow(u32 id, const Vector2D<float>& position, float scale = 1.0f);
    EmptyWindow(u32 id, const Vector2D<float>& position, const Vector2D<float>& size);
    ~EmptyWindow() {}

    virtual void Render() override;
    virtual bool Update() override;
    virtual void Destroy() override;

    virtual void OnMouseButtonDown(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override;
    virtual void OnMouseButtonUp(const OIS::MouseEvent &arg, OIS::MouseButtonID id) override;
    virtual void OnMouseOver() override;

private:
    void Init(u32 id, const Vector2D<float>& position, const Vector2D<float>& size, float scale = 1.0f);

private:
    HGE* m_pHGE;
    
    Vector2D<float>     m_scale;

    hgeResourceManager* m_pResourceManager;
    hgeSprite*          m_pSpriteWindow;
    hgeSprite*          m_pSpriteFrame;
    hgeSprite*          m_quitGraphic;

    bool                m_fDragging;
    Vector2D<float>     m_startMousePositionDrag;
};

